/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.fatecmm.cadastrotimes.banco;

import br.edu.fatecmm.cadastrotimes.beans.BnLigas;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author raphael
 */
public class LigasDAO {
    private Connection conn;
    
    public LigasDAO() throws Exception{
        
         try{
            this.conn = ConnectionFactory.getConnection();
        }
        catch(Exception e){
            throw new Exception(e.getMessage());
        }
    }
    
    public void salvar(BnLigas bnLigas) throws Exception{
        PreparedStatement ps = null;
        Connection conn =  null;
        if(bnLigas == null) {
            throw new Exception("O valor passado não pode ser nulo");
        }
        
        try{
            String SQL = "INSERT INTO ligas(ds_ligas) VALUES (?)";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            //ps.setInt(1, bnLigas.getId_ligas());
            ps.setString(1, bnLigas.getDs_ligas());
            ps.executeUpdate();
        }catch(SQLException sqle)
        {
            throw new Exception("Erro ao inserir dados: " + sqle);
        }
        
        
        finally
        {
            ConnectionFactory.closeConnection(conn, ps);
        }
        
    }
    public void atualizar(BnLigas bnLigas) throws Exception
    {
        PreparedStatement ps = null;
        Connection conn = null;

        if(bnLigas == null)
            throw new Exception("O valor passado não pode ser nulo");
        
        int c = bnLigas.getId_ligas();
        c = 6; //caso para teste

        try
        {
            String SQL = "UPDATE ligas SET ds_ligas = ? WHERE id_ligas = ?";
            //String SQL = "UPDATE ligas SET ds_ligas = ? WHERE id_ligas = "+ c;

            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.setInt(1, bnLigas.getId_ligas());
            ps.setString(1, bnLigas.getDs_ligas());
            

            ps.executeUpdate();
        }
        catch(SQLException sqle)
        {
            throw new Exception("Erro ao atualizar dados: " + sqle);
        }
        finally
        {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }
    public List todos() throws Exception
    {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try
        {
            conn = this.conn;
            ps = conn.prepareStatement("SELECT * FROM ligas ORDER BY ds_ligas");
            rs = ps.executeQuery();
            List<BnLigas> lista = new ArrayList<BnLigas>();
            while(rs.next())
            {
                int id_ligas = rs.getInt("id_ligas");
                String ds_ligas = rs.getString("ds_ligas");
                
                
                BnLigas bnLigas = new BnLigas(id_ligas,ds_ligas);

                lista.add(bnLigas);
            }
            return lista;
        }
        catch(SQLException sqle)
        {
            throw new Exception(sqle);
        }
        finally
        {
            ConnectionFactory.closeConnection(conn, ps, rs);
        }
   }
     public BnLigas procurar(int id_ligas) throws Exception
    {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;
        
        BnLigas ligas = new BnLigas();
        try
        {
            conn = this.conn;
            ps = conn.prepareStatement("SELECT * FROM ligas WHERE id_ligas = "+id_ligas);
            ps.setInt(1, id_ligas);
            rs = ps.executeQuery();
            if(!rs.next())
            {
                throw new Exception("Não foi encontrado nenhum "
                        + "registro com o ID: " + id_ligas);
            }

            String ds_ligas = rs.getString("ds_ligas");
           
            
            
            BnLigas bnLigas = new BnLigas(id_ligas, ds_ligas);
            
            return bnLigas;
        }
        catch(SQLException sqle)
        {
            throw new Exception(sqle);
        }
        finally
        {
            ConnectionFactory.closeConnection(conn, ps, rs);
        }
    }
      public void excluir(BnLigas bnLigas) throws Exception
    {
        PreparedStatement ps = null;
        Connection conn = null;

        if(bnLigas == null)
        {
            throw new Exception("O valor passado não pode ser nulo");
        }

        try
        {
            conn = this.conn;
            ps = conn.prepareStatement("DELETE FROM ligas WHERE id_ligas = ?");
            ps.setInt(1, bnLigas.getId_ligas());
            ps.executeUpdate();
        }
        catch(SQLException sqle)
        {
            throw new Exception("Erro ao excluir dados: " + sqle);
        }
        finally
        {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }
    
}
